package cn.zl.ymcc.gen.controller;

import cn.zl.ymcc.gen.CodeGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;

@RestController
@RequestMapping("/generator")
public class GeneratorController1 {
    @Autowired
    private CodeGenerator codeGenerator;

    /**
     * 生成单表代码
     */
    @PostMapping("/single")
    public String generateSingle(@RequestParam String tableName) {
        try {
            codeGenerator.generate(tableName);
            return "代码生成成功！表名：" + tableName;
        } catch (Exception e) {
            e.printStackTrace();
            return "代码生成失败：" + e.getMessage();
        }
    }

    /**
     * 生成多表代码
     */
    @PostMapping("/multiple")
    public String generateMultiple(@RequestParam String tableNames) {
        try {
            String[] tables = tableNames.split(",");
            codeGenerator.generate(tables);
            return "代码生成成功！表名：" + Arrays.toString(tables);
        } catch (Exception e) {
            e.printStackTrace();
            return "代码生成失败：" + e.getMessage();
        }
    }

    /**
     * 生成所有表代码
     */
    @GetMapping("/all")
    public String generateAll() {
        try {
            // 这里可以添加获取所有表名的逻辑
            codeGenerator.generate(
                 "t_course_order",
                 "t_course_order_item"
            );
            // 例如：codeGenerator.generateAllTables();
            return "所有表代码生成成功！";
        } catch (Exception e) {
            e.printStackTrace();
            return "代码生成失败：" + e.getMessage();
        }
    }
}
